import { Module, DynamicModule, Global } from '@nestjs/common';

import { globalCustomOptions } from '../../global'; //全局
// interface Options {
//   path: string;
// }

/* 
  作用：动态模块主要就是为了给模块传递参数
  可以给该模块添加一个静态方法 用来接受参数 
*/
@Global()
@Module({})
export class ConfigModule {
  static forRoot(options: globalCustomOptions): DynamicModule {
    return {
      module: ConfigModule,
      providers: [
        {
          provide: 'Config', //意味着我们要注入一个名为 'Config' 的依赖，这个依赖可能是一个类、服务或其他对象。
          useValue: { baseApi: '/api' + options.path },
        },
      ],
      exports: [
        {
          provide: 'Config',
          useValue: { baseApi: '/api' + options.path },
        },
      ],
    };
  }
}
